// Generators 的核心入口
// 需要导出一个继承自Yeoman Generator的类型
// Yeoman Generator在工作时会自动调用我们在此类型中定义的一些生命周期方法
// 我们在这些方法中可以通过父类提供的一些工具方法实现一些功能，如文件写入

const Generator = require('yeoman-generator');

module.exports = class extends Generator {
  promptint(){
    // Yeoman 在询问用户环节会自动调用此方法
    // 在此方法中可以调用父类的 prompt() 方法发出对用户的命令行询问
  }
  writing(){
    // Yeoman 自动在生成文件阶段调用此方法
    // this.fs.write(
    //   this.destinationPath('temp.txt'),
    //   Math.random().toString()
    // );

    // 通过模板方式写入文件到目标目录
    // 模板文件路径
    const tmpl = this.templatePath('hello.txt');
    // 输出目标路径
    const output = this.destinationPath('hello.txt');
    // 模板数据上下文
    const context = {title: 'Hello zn-simple-cli'}

    this.fs.copyTpl(tmpl, output, context);
  }
}